#pragma once
#include "IDirectory.h"

namespace ja2{ namespace vfs
{
	//! Base class for all directory location implementations.
	class DirectoryBase : public IDirectory
	{
		// Attributes
	private:
		//! Mount point.
		boost::filesystem::path m_MountPoint;
		//! Real path of directory.
		boost::filesystem::path const m_RealPath;

		// Operations
	public:
		//! See base.
		virtual boost::filesystem::path const &get_path() const;
	protected:
		//! Get mount point.
		boost::filesystem::path const &mount_point() const;

		// Construction/Destruction
	protected:
		DirectoryBase(boost::filesystem::path const &MountPoint, boost::filesystem::path const &RealPath);
	};
} /*vfs*/} /*ja2*/
